ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース6.0
B25764-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

X/Open DTPモデル

図4.1に、X/Open DTPモデルによって定義されるインタフェースを示します。

図4.1 分散トランザクション処理モデル

DTPモデルでは、トランザクション・マネージャが、各グローバル・トランザクションを複数のブランチに分割し、それらを別々のリソース・マネージャに分散して処理します。TimesTen XAでは、リソース・マネージャは、TimesTenデータ・ストアで構成するか、またはXAをサポートする他の商用データベースとデータ・ストアを組み合せて構成することができます。

図4.1に示すように、アプリケーションは、TXインタフェースを使用して、グローバル・トランザクションをトランザクション・マネージャに伝えます。トランザクション・マネージャは、グローバル・トランザクションをブランチに分割し、XAインタフェースを使用して各トランザクション・ブランチと適切なリソース・マネージャとの調整を行います。

TXおよびXAインタフェースによって提供されるグローバル・トランザクションの制御は、ネイティブのODBCおよびJDBCインタフェースによって提供されるローカル・トランザクションの制御とは異なります。通常は、ローカル・トランザクションとグローバル・トランザクションで別々の接続を維持することをお薦めします。アプリケーションは、TimesTenリソース・マネージャに対する接続ハンドルを取得して、同じ接続上でローカル・トランザクションおよびグローバル・トランザクションの両方を開始できます。

2フェーズ・コミット

XAの実装では、トランザクション・マネージャは、2フェーズ・コミットのプロトコルを使用して、分散されたグローバル・トランザクションのブランチをコミットします。次に、これらの2つのフェーズを示します。

注意: トランザクション・マネージャでは、すべてのブランチが正常にコミットされた場合にのみ、グローバル・トランザクションがコミットされたと認識されます。

1フェーズ・コミットの最適化

トランザクション・マネージャは、グローバル・トランザクションに1つのブランチのみが含まれるように指定した場合、第1フェーズをスキップして、第2フェーズでトランザクションをコミットします。

読取り専用の最適化

グローバル・トランザクション・ブランチが読取り専用の場合、トランザクション・マネージャは第1フェーズでブランチをコミットし、そのブランチの第2フェーズをスキップします。読取り専用のトランザクションでは、ログ・レコードは生成されません。